## Домашнее задание к занятию #2

#### Роутинг, работа с контекстом

- Реализуйте переход в детальную карточку товара и обратно посредством библиотеки React Router v6 (2 балла)
  Оберните часть компонента Card в компонент Link. Используя динамический роутинг при нажатии на карточку отрендерите компонент детальной карточки, при переходе передавайте объект state с текущим location. На странице детальной карточки разместите кнопку назад, нажатие на которую перенаправляет пользователя на предыдущую страницу (если есть state в объекте location) или по умолчанию перенаправляет на список всех карточек.
  **DONE**

- Реализуйте компонент 404 ошибки и роутинг на него. (2 балла)
  Используйте path \* для обработки несуществующих роутов.
  **DONE**

- Реализуйте страницу профиля и роутинг на неё (2 балла)
  Ссылку на страницу профиля разместите в шапке согласно дизайну.
  **DONE**

- Реализуйте страницу избранных товаров и роутинг на неё. (2 балла)
  Ссылку на страницу избранных товаров разместите в шапке, согласно дизайну.
  **DONE**

- Подключение контекста пользователя и списка товаров. (4 балла)
  Контекст пользователя необходимо использовать в списке товаров, карточке товара, на странице профиля и на странице избранных товаров. От id пользователя зависит отображение лайка на карточке товара.
  Контекст определяется на верхнем уровне компонентов и через компонент Provider пробрасывается дочерним компонентам.
  **DONE**

Дополнительное задание (необязательное)

- Сделайте роутинг с использованием функции createBrowserRouter (3 балла)
  **DONE**

## Домашнее задание к занятию #1

#### Декомпозиция проекта, работа с хуками useState, useEffect

- Создать репозиторий и добавить в Collaborators проверяющего. Развернуть сборку, запустить линтинг и
  проверить работу pre-commit хуков (1 балл)
  **DONE**
- Декомпозировать на компоненты страницу каталога, реализовать (3 балла)
  Header — шапка сайта. +
  Footer — подвал сайта. +
  Card — анонс карточки товара. +
  CardList — список карточек. +
  Logo — логотип. +
  Sort — компонент сортировки. +
  Search — компонент поиска, можно отдельно выделить компонент инпута и кнопки. +
  Spinner/Skeleton — компонент ожидания загрузки или скелетон анонса карточки товара. +
  **DONE**
- Рендеринг товаров из массива (4 балла)
  **DONE**
- Фильтрация товаров при вводе в поисковую строку (4 балла)
  **DONE**
- Реализуйте пагинацию товаров (3 балла)
  **DONE**
